Week1-Static-Web-Architecture
Week 1: 정적 웹 호스팅 아키텍처
AWS 클라우드의 서버리스 서비스들을 활용한 전 세계적으로 빠르고 안전한 정적 웹사이트 구축

아키텍처 개요
최종 사용자
↓ HTTPS 요청
Route 53 (DNS)
↓ 도메인 해석
CloudFront (CDN)
↓ 캐시된 콘텐츠 전달
S3 Bucket (저장소)
↑ SSL 인증서 (Certificate Manager)
상세 아키텍처
네트워크 흐름
사용자 (전 세계)
↓
[인터넷]
↓
Route 53 DNS 서비스
├── yourdomain.com (A 레코드)
└── www.yourdomain.com (A 레코드)
↓ 별칭 연결
CloudFront Distribution
├── Edge Location (서울)
├── Edge Location (도쿄)
├── Edge Location (싱가포르)
└── ... (전 세계 200+ 엣지)
↓ 원본 요청
S3 Bucket (ap-northeast-2)
├── index.html
├── style.css
├── script.js
└── assets/
보안 계층
Certificate Manager (us-east-1)
├── SSL 인증서 발급
├── 자동 갱신 관리
└── CloudFront 연동
↓
HTTPS 암호화 통신
├── HTTP → HTTPS 리다이렉트
├── TLS 1.2/1.3 지원
└── 보안 헤더 적용
핵심 구성 요소
1. S3 Bucket
역할: 웹사이트 파일 저장 및 호스팅
설정:
- 정적 웹사이트 호스팅 활성화
- 퍼블릭 읽기 액세스 허용
- 웹사이트 엔드포인트 제공
버킷 정책:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
2. CloudFront Distribution
역할: 전 세계 캐시 및 콘텐츠 배포
설정:
- 원본: S3 웹사이트 엔드포인트
- 캐시 정책: 최적화된 성능
- 압축: 자동 활성화
- HTTP → HTTPS 리다이렉트
캐시 동작:
정적 파일 (HTML, CSS, JS)
├── TTL: 24시간
├── 압축: 활성화
└── 헤더: Cache-Control 준수
이미지 파일 (PNG, JPG, SVG)
├── TTL: 7일
├── 압축: 활성화
└── 최적화: WebP 변환
3. Route 53
역할: DNS 서비스 및 도메인 관리
설정:
- 호스팅 영역 생성
- A 레코드 (별칭) → CloudFront
- AAAA 레코드 (IPv6 지원)
DNS 레코드:
Type | Name | Target
------|------|--------
A | @ | CloudFront Distribution
A | www | CloudFront Distribution
AAAA | @ | CloudFront Distribution (IPv6)
AAAA | www | CloudFront Distribution (IPv6)
4. Certificate Manager
역할: SSL/TLS 인증서 관리
설정:
- 리전: us-east-1 (CloudFront 연동 필수)
- 도메인 검증: DNS 방식
- 자동 갱신: 활성화
데이터 흐름
정상 요청 흐름
1. 사용자가 https://yourdomain.com 접속
2. Route 53에서 CloudFront IP 주소 반환
3. 가장 가까운 Edge Location으로 라우팅
4. Edge Location에 캐시된 콘텐츠 확인
├── 캐시 HIT → 즉시 응답 (지연 시간 최소)
└── 캐시 MISS → S3에서 원본 콘텐츠 가져와서 캐시 후 응답
5. HTTPS로 암호화된 응답을 사용자에게 전달
첫 방문자 흐름
첫 방문자 → Edge Location (캐시 없음)
↓
S3 Bucket에서 원본 파일 가져오기
↓
Edge Location에 캐시 저장
↓
사용자에게 응답 전달
재방문자 흐름
재방문자 → Edge Location (캐시 있음)
↓
캐시된 파일로 즉시 응답
(S3 접근 없이 빠른 응답)
성능 최적화
1. 글로벌 배포
- Edge Location: 전 세계 200+ 위치
- 지연 시간: 50ms 이하 달성
- 대역폭: 자동 확장
2. 캐싱 전략
파일 유형별 캐시 TTL:
├── HTML: 24시간 (빈번한 업데이트)
├── CSS/JS: 7일 (버전 관리)
├── 이미지: 30일 (거의 변경 없음)
└── 폰트: 1년 (변경 거의 없음)
3. 압축 및 최적화
- Gzip 압축: 텍스트 파일 70-90% 감소
- Brotli 압축: 최신 브라우저에서 더 높은 압축률
- HTTP/2: 멀티플렉싱으로 로딩 속도 향상
보안 기능
1. HTTPS 강제
모든 HTTP 요청 → HTTPS 리다이렉트
├── TLS 1.2/1.3 지원
├── Perfect Forward Secrecy
└── HSTS 헤더 적용
2. 보안 헤더
응답 헤더:
├── X-Content-Type-Options: nosniff
├── X-Frame-Options: DENY
├── X-XSS-Protection: 1; mode=block
└── Referrer-Policy: strict-origin-when-cross-origin
3. 접근 제어
- Origin Access Identity: CloudFront만 S3 접근 허용
- 지역 제한: 필요시 특정 국가 차단
- WAF 연동: 악성 트래픽 차단
비용 모델
예상 비용 (월 기준)
S3 스토리지 (1GB): $0.023
CloudFront 데이터 전송:
├── 첫 10TB: $0.085/GB
├── 다음 40TB: $0.080/GB
Route 53 호스팅 영역: $0.50
Certificate Manager: 무료
총 예상 비용 (소규모): $1-5/월
비용 최적화
- 캐시 최적화: Origin 요청 최소화
- 압축 활용: 데이터 전송량 감소
- CloudWatch: 사용량 모니터링
장점과 특징
1. 서버리스
- 서버 관리 불필요: EC2 인스턴스 없음
- 자동 확장: 트래픽 급증 시 자동 처리
- 패치 관리 없음: AWS가 인프라 관리
2. 고성능
- 전 세계 배포: CDN을 통한 빠른 응답
- 무제한 확장: 트래픽 제한 없음
- 99.99% 가용성: SLA 보장
3. 보안
- SSL/TLS 암호화: 데이터 전송 보호
- DDoS 보호: CloudFront 기본 제공
- 접근 제어: 세밀한 권한 관리
4. 비용 효율성
- 사용량 기반 과금: 실제 사용한 만큼만
- 무료 티어: 시작 비용 최소화
- 자동 최적화: 비용 효율적인 운영
제한사항
1. 정적 콘텐츠만
- 동적 처리 불가: 서버사이드 로직 필요시 다른 아키텍처 필요
- 데이터베이스 연동 불가: API Gateway + Lambda 조합 필요
2. 실시간 업데이트
- 캐시 무효화: 즉시 반영을 위한 추가 작업 필요
- 전파 시간: DNS 변경 시 최대 48시간
발전 가능성
Week 2로의 발전
정적 웹사이트
↓
동적 웹 애플리케이션 추가
├── EC2 백엔드 서버
├── RDS 데이터베이스
└── API 엔드포인트
하이브리드 아키텍처
정적 자산 (S3 + CloudFront)
+
동적 API (EC2 + RDS)
=
최적화된 풀스택 애플리케이션
Week 1 완성: 전 세계적으로 빠르고 안전한 정적 웹사이트 구축 완료
다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Edu Architecture/Week2-Dynamic-Web-Architecture - 동적 웹 애플리케이션으로 확장